Прямі методи розв’язування систем лінійних алгебраїчних рівнянь

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2004
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Алгоритмічні основи криптології
Група:
ІБ – 41

Частина тексту файла

Міністерство освіти та науки України Національний університет “Львівська політехніка” Звіт про виконання лабораторної роботи N1 з курсу “Алгоритмічні основи криптології” на тему: “Прямі методи розв’язування систем лінійних алгебраїчних рівнянь” Львів – 2004 Мета роботи: вивчити найпоширеніші прямі методи розв’язку систем лінійних алгебраїчних рівнянь, навчитись розв’язувати на ЕОМ системи алгебраїчних рівнянь, провести порівняльний аналіз розглянутих методів. Завдання: написати програму на мові програмування Сі яка б розв’язувала систему лінійних алгебраїчних рівнянь методом LU – розкладу. 8.3*х(1) + (2.62+s)*x(2) + 4.1*x(3) + 1.9*x(4) = -10.65+B 3.92*x(1) + 8.45*x(2) + (7.78-s)*x(3) +2.46*x(4) = 12.21 3.77*x(1) + (7.21+s)*x(2) + 8.04*x(3) + 2.28*x(4) = 15.45 – B 2.21*x(1) + (3.65-s)*x(2) + 1.69*x(3) + 6.99*x(4) = -8.35 де s = 0.2*k , B = 0.2*p k=0, p=5. Блок – схема алгоритму роботи програми  Текст програми: #include <math.h> #include <stdio.h> #define n 4 void main (void) { float a[n+1][n+1]; float b[n+1]; float L[n+1][n+1],U[n+1][n+1],x[n+1],y[n+1]; int i,j,k,m; float sum,s1=0; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) scanf("%f",&a[i][j]); } for (i=1;i<=n;i++) scanf("%f",&b[i]); k=1; for (i=1;i<=n;i++) { L[i][1]=a[i][1]; } for (j=2;j<=n;j++) { U[1][j]=a[1][j]/a[1][1]; } for(k=k+1;k<=n;k++) { for (i=k;i<=n;i++) { sum=0; for (m=1;m<=k-1;m++) { sum=sum+L[i][m]*U[m][k]; } L[i][k]=a[i][k]-sum; } for (j=k+1;j<=n;j++) { sum=0; for (m=1;m<=k-1;m++) { sum=sum+L[k][m]*U[m][j]; } U[k][j]=(a[k][j]-sum)/L[k][k]; } } y[1]=b[1]/L[1][1]; for (i=2;i<=n;i++) { sum=0; for (m=1;m<=i-1;m++) { sum=sum+L[i][m]*y[m]; } y[i]=(b[i]-sum)/L[i][i]; } x[n]=y[n]; for (i=n-1;i>=1;i--) { sum=0; for (m=i+1;m<=n;m++) { sum=sum+U[i][m]*x[m]; } x[i]=y[i]-sum; } for (i=1;i<=n;i++) { printf("\nX[%d] = %f",i,x[i]); } for (i=1;i<=n;i++) { for (j=1;j<=n;j++) s1+=a[i][j]*x[j]; printf("\nsuma[%d]=%f",i,s1); s1=0; } } Результат виконання програми:  Висновок: Розв’язання систем лінійних алгебраїчних рівнянь методом Гауса або LU - розкладу можна досить легко реалізувати на ЕОМ за допомогою програми в середовищі Сі. Основна перевага методу LU – розкладу полягає в можливості простішого одержання розв’язку для різних векторів b системи лінійних рівнянь. Розв’язання таких систем на ЕОМ є дуже актуальним, оскільки цей процес є набагато легшим та короткотривалішим ніж розв’язання систем лінійних алгебраїчних рівнянь вручну.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини